package com.wei.czz.common.constant;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2021-05-24 13:41:00
 * className RedisConstant Redis结构名称静态常量类
 * version: 1.0
 * description:
 */
public class RedisConstant {

    /*
        本类存在若干类似作用的注释，为了减少注释字数，采用统一声明，在使用处用序号标识引用的注释

        序号1：实际使用存在两种情况。1、直接使用该字段作为结构名称。2、用户id拼接该字段作为用户独有结构
        序号2：实际使用为用户id拼接该字段，作为用户独有结构
        序号3：实际使用为该字段拼接该接口参数构成
     */

    /**
     * 分隔符
     */
    public static final String SPLIT = ":";

    /**
     * 星号
     */
    public static final Character ASTERISK = '*';

    /**
     * 字符串类型缓存键前缀
     */
    public static final String STRING = "string:";

    /**
     * 哈希类型缓存键前缀
     */
    public static final String HASH = "hash:";

    /**
     * 列表类型缓存键前缀
     */
    public static final String LIST = "list:";

    /**
     * 集合类型缓存键前缀
     */
    public static final String SET = "set:";

    /**
     * 有序集合缓存键前缀
     */
    public static final String Z_SET = "zset:";

    /**
     * 树形结构缓存键前缀
     */
    public static final String TREE = "tree:";

    /**
     * 页面参数缓存键后缀
     */
    public static final String PAGE_PARAM = ":page_param:";

    /*
       system模块操作对应的Redis结构
     */
    /**
     * Redis-Hash结构存储所有验证码信息
     */
    public static final String VALIDATE_CODE_MAP = "validateCodeMap";
    /**
     * Redis-ZSet结构存储所有用户登录过期信息
     */
    public static final String OVER_TIME_ZSET = "overTimeZSet";

    /**
     * Redis-ZSet结构存储所有标签的数量
     */
    public static final String TAG_ZSET = "tagZSet";

    /*
        index模块对应的Redis结构
     */
    /**
     * Redis-Hash结构存储最近30分钟内容有做修改的博客记录
     * 1、热门状态修改
     * 2、被推荐状态修改
     * 3、点赞数修改
     * 4、被收藏数修改
     * 5、评论数修改
     * 6、浏览数修改
     */
    public static final String UPDATE_BLOG_MAP = "updateBlogMap";
    /**
     * Redis-Hash结构存储用户所有空间信息
     * 引用类头部注释：序号2
     */
    public static final String SPACE_MAP = "spaceMap";
    /**
     * Redis-ZSet结构存储一天内博客的浏览次数排行数据
     */
    public static final String DAY_BLOG_VIEW_ZSET = "dayBlogViewZSet";
    /**
     * Redis-ZSet结构存储一个月内博客的浏览次数排行
     */
    public static final String MONTH_BLOG_VIEW_ZSET = "monthBlogViewZSet";
    /**
     * Redis-String结构存储系统已发布博客的总点赞数量
     */
    public static final String LIKE_COUNT = "likeCount";
    /**
     * Redis-String结构存储系统已发布博客的总评论数量
     */
    public static final String COMMENT_COUNT = "commentCount";
    /**
     * Redis-String结构存储系统已发布博客的总浏览数量
     */
    public static final String VIEW_COUNT = "viewCount";
    /**
     * Redis-String结构存储系统首页面标签排行列表
     */
    public static final String TAG_LIST = "tagList";
    /**
     * Redis-Hash结构存储用户使用的诗意信息
     */
    public static final String USING_POETRY_MAP = "usingPoetryMap";

    /*
        game模块对应的Redis结构
     */
    /**
     * Redis-Hash结构存储所有游戏数据
     * 引用类头部注释：序号1
     */
    public static final String GAME_MAP = "gameMap";
    /**
     * Redis-Hash结构存储所有游戏奖品的可用次数数据
     * 引用类头部注释：序号1
     */
    public static final String GAME_PRIZE_MAP = "gamePrizeMap";
    /**
     * Redis-Set结构存储游戏抽奖的奖品池
     * 引用类头部注释：序号1
     */
    public static final String GAME_PRIZE_SET = "gamePrizeSet:";
    /**
     * Redis-Hash结构存储所有游戏用户的可用游戏次数数据
     * 引用类头部注释：序号1
     */
    public static final String GAME_USER_MAP = "gameUserMap:";

    /*
        分布式锁前缀或者后缀字符串
     */
    /**
     * Redisson分布式锁前缀
     */
    public static final String LOCK = "lock:";
    /**
     * 用户设置/解除部门主管分布式锁前缀
     */
    public static final String DEPT_USER = "lock:deptUser:";
    /**
     * 商店操作分布式锁前缀
     */
    public static final String LOCK_STORE_KEY = "lock:store:";

    /*
        博客数据
     */
    /**
     * 存储用户自己博客的分页数据列表
     * 引用类头部注释：序号4
     */
    public static final String USER_BLOG_LIST = "userBlogList";

    /**
     * 存储用户自己已发布博客的分页数据列表
     * 引用类头部注释：序号4
     */
    public static final String USER_ISSUE_BLOG_LIST = "userIssueBlogList";

    /**
     * 存储管理员可以管理的博客列表
     * 引用类头部注释：序号4
     */
    public static final String MANAGE_BLOG_LIST = "manageBlogList";

    /*
        博客标签数据
     */
    /**
     * 存储博客标签信息的分页数据列表
     * 引用类头部注释：序号4
     */
    public static final String SYSTEM_TAG_LIST = "systemTagList";

    /**
     * 所有博客标签列表
     */
    public static final String ALL_TAG_LIST = "allTagList";

    /*
        用户诗意数据
     */
    /**
     * 存储用户诗意信息列表
     * 引用类头部注释：序号4
     */
    public static final String POETRY_LIST = "poetryList";

    /*
        用户空间数据
     */
    /**
     * 存储用户自己空间信息的分页数据列表
     * 引用类头部注释：序号4
     */
    public static final String SPACE_LIST = "spaceList";

    /*
        博客评论管理页面
     */
    /**
     * 存储博客评论管理页面的博客列表数据
     * 引用类头部注释：序号4
     */
    public static final String BLOG_LIST = "blogList";

    /*
        浏览器页面-首页
     */
    /**
     * 存储客户端首页面展示的博客列表数据
     * 引用类头部注释：序号4
     */
    public static final String INDEX_LIST = "indexList";

    /**
     * 存储系统统计信息数据
     */
    public static final String WEB_STATS = "webStats";

    /*
        浏览器页面-标签排序页面
     */
    /**
     * 存储所有博客标签排序列表数据
     */
    public static final String TAG_SORT_LIST = "tagSortList";
    /**
     * 存储某个标签关联的博客列表数据
     * 引用类头部注释：序号4
     */
    public static final String TAG_BLOG_LIST = "tagBlogList";

    /*
        浏览器页面-排序页面
     */
    /**
     * Redis-String结构存储系统博客排序页面，综合博客排行列表前缀
     * 引用类头部注释：序号4
     */
    public static final String SORT_BLOG_LIST = "sortBlogList";
    /**
     * Redis-String结构存储系统博客排序页面，热门博客排行列表前缀
     * 引用类头部注释：序号4
     */
    public static final String HOT_SORT_LIST = "hotSortList";
    /**
     * Redis-String结构存储系统博客排序页面，系统推荐博客排行列表前缀
     * 引用类头部注释：序号4
     */
    public static final String RECOMMEND_SORT_LIST = "recommendSortList";

}
